
 
Resumen—Semat (Software Engineering Method and Theory) 
es  una  iniciativa  que  permite  representar  prácticas  comunes  de 
metodologías ya existentes mediante los elementos de su núcleo, los 
cuales se describen en términos de un lenguaje. Este lenguaje tiene 
una sintaxis gráfica y una textual. La sintaxis textual se describe 
mediante el  metalenguaje EBNF  (Extended Backus-Naur  Form) 
que se utiliza como notación de gramáticas de libre contexto para 
describir un lenguaje formal. Sin embargo, la sintaxis textual de los 
elementos del núcleo en algunos casos presenta inconsistencia con 
la sintaxis gráfica. Por ello, en este artículo se propone la modifica-
ción del lenguaje textual mediante un análisis gramatical al lengu-
aje de Semat con el fin de lograr una relación consistente entre la 
sintaxis textual y gráfica de los elementos del núcleo de Semat. 
Palabras  clave—Análisis  gramatical,  EBNF,  Semat,  sintaxis 
textual. 
Improving the Consistency 
between Textual and Graphical Syntax 
of the Language of Semat
 
Abstract—Semat (Software Engineering Method and Theory) is 
an initiative that allows representing common practices of existing 
methodologies by its core elements, which are described in terms 
of a language. This language has a graphical and a textual syntax. 
The  textual  syntax  is  described  using  meta-language  EBNF 
(Extended  Backus-Naur  Form),  which  is  used  as  context-free 
grammar  notation  to  describe  a  formal  language.  However,  the 
textual syntax of core elements in some cases is inconsistent with 
the  graphical  syntax.  Therefore,  in  this  paper  we  propose  a 
modification of textual language by parsing the language of Semat 
in order to achieve a consistent relationship between textual and 
graphical syntax of the core elements of Semat. 
Keywords—Parsing, EBNF, Semat, textual syntax. 
I.  INTRODUCCIÓN 
emat es una iniciativa que apoya un proceso para redefinir 
la  ingeniería  de  software  con  base  en  una  teoría  sólida, 
principios probados y mejores prácticas. A diferencia de otros 
intentos  para  crear  una  teoría  general  de  la  ingeniería  de 
software,  en  Semat  se  generaliza  la  ingeniería  de  software 
identificando  acciones  y  elementos  universales,  que  se 
describen mediante un lenguaje sencillo y universal que permite 
la  descripción  de  las  prácticas  comunes  de  metodologías 
existentes  y  así  lograr  que  se  puedan  evaluar,  comparar  y 
medir [1]. Su núcleo incluye un grupo de elementos esenciales 
que  son  universales  para  todo  esfuerzo  de  desarrollo  de 
software  y  extensibles  para  usos  específicos,  lo  que  permite 
asumir  que  Semat  no  se  resiste  ante  nuevas  ideas,  ya  que 
cualquier  metodología  se  puede  representar  mediante  sus 
elementos en el núcleo [2]. 
El lenguaje de Semat posee una sintaxis abstracta, la cual se 
compone  de  una  sintaxis  textual  y  una  sintaxis  gráfica.  La 
sintaxis gráfica comprende la representación, una forma visual, 
de los elementos del núcleo de Semat, mientras que la sintaxis 
textual,  se  encuentra  descrita  en  el  metalenguaje  EBNF 
(Extended  Backus-Naur  Form),  presenta  una  descripción 
formal de cada uno de los elementos del núcleo [3]. 
La notación Backus-Naur (BNF por sus siglas en inglés) se 
creó  inicialmente  para  describir  la  sintaxis  del  lenguaje  de 
programación  ALGOL  60  y  se  utiliza  desde  entonces  como 
notación  para  las  gramáticas  libres  de  contexto,  las  cuales 
permiten describir la estructura sintáctica de muchos (aunque 
no todos) lenguajes [4]. 
Tal como se puede ver en la fig. 1, una gramática consta de 
un conjunto de no-terminales, terminales y una serie de reglas 
de  producción.  Un  no-terminal  se  define  en  una  regla  de 
producción,  mientras  que  un  terminal  es  un  símbolo  del 
lenguaje que se está definiendo. En una regla de producción, el 
no-terminal  (que  aparece  en  la  parte  izquierda)  se  define  en 
términos  de  una  secuencia  de  símbolos  no-terminales  y 
terminales (que se encuentran en la parte derecha) [5]. 
<símbolo> ::= <expresión con símbolos> 
Figura 1. Expresión BNF 
EBNF es un conjunto de expansiones de BNF, por lo cual 
presenta pequeñas diferencias sintácticas y algunas operaciones 
adicionales.  En  ella  se  incorporan  algunos  conceptos  de  la 
notación  sintáctica  de  Wirth  con  el  propósito  de  definir  la 
gramática  de  los  lenguajes  de  programación  (lenguajes 
formales) [6]. 
En este artículo se propone una revisión de la sintaxis textual 
de los elementos del núcleo de Semat, con el fin de encontrar 
las inconsistencias existentes entre las representaciones gráficas 
de los diferentes elementos y las especificaciones descritas en 
la sintaxis textual. Existen elementos gráficos a los cuales les 
faltan conexiones que se definen en el lenguaje textual y existen 
expresiones  que  representan  de  forma  incompleta  lo  que  el 
lenguaje gráfico muestra. Adicionalmente, estos elementos se 
Carlos Mario Zapata Jaramillo, Rafael Esteban Arango Sanchez, Leidy Diana Jiménez Pinzón 
Mejoramiento de la consistencia entre la 
sintaxis textual y gráfica del lenguaje de Semat 
Manuscrito recibido el 19 de abril de 2014; aceptado para la publicación el 
17
 de junio del 2014. 
Todos los autores están con la Universidad Nacional de Co
lombia, sede 
Medellín,  Colombia
  (correos: 
{cmzapata,  raearangosa,  ldjimenezp}@unal. 
edu.co). 
83 Polibits (49) 2014ISSN 1870-9044; pp. 83–89